Traditional product configuration systems determine the validity of a product configuration based on the compatibility of the various components or sub-systems that a particular product may comprise. Such systems guide and/or validate the product selection process in a “bottom-up” approach by applying rules or constraints defining component or sub-system interrelationships as those components or sub-systems. These rules and constraints may be defined, organized and/or applied in a hierarchical fashion.
For complex systems in which there is a wide selection of possible product configurations involving potentially hundreds or thousands of components or sub-systems, the volume of rules and constraints that must be defined, and then applied during the configuration and selection process, can materially impact the performance of the system and the efficiency of the process overall. In addition, a large volume of interrelationship rules and constraints increases the possibility of error in the rule/constraint definition process. Finally, this approach makes product definition a labor intensive and overly complex process because inter-component compatibility must be defined for each component or sub-system in the product. This increases the complexity of implementing changes among components, or to component compatibility, within the configuration system.
U.S. Pat. No. 5,515,524, presently assigned to Versata Development Group, Inc., discloses a constraint based configuration system that uses a functional hierarchy to generate structural relationships and other physical interconnections between components that may make up a configuration. The structural hierarchy model includes the Component, Composite, Container, Port, and Connector base classes. These base classes may branch into derived classes (i.e., system-specific classes) and terminate at leaf-descendants. Leaf-descendants define the type of components in the functional, structural hierarchy model. Attributes, data types, resources, and constraints further define the model. The structural hierarchy includes a container structure to specify that one component is contained by, or in, another component. In addition, the structural specification provides the ability to specify the connections between components of a configured system. As components are added to a configuration, the physical and logical interconnections that are required to assemble the system components may be verified.
U.S. Pat. No. 5,825,651, presently assigned to Versata Development Group, Inc., discloses a “drag and drop” configuration system. The system operates based on a product definition defining the interrelationships between the parts or components that may make up a product. A maintenance system is provided for specifying the part relationships. Part-to-part relationships may be created between parts within a product. Parts in a product definition may be related or classified as included, required choice, excluded, removed and optional. Similar parts may grouped together to form a part hierarchy.
Embodiments of the invention described herein provide a different and more efficient “top down” approach to product configuration. Unlike prior art systems which validate a product configuration selection against rules defining valid component interrelationships that make up a product, embodiments of the present invention validate a product configuration selection against the matrix of valid end-product configurations themselves. With this architecture, efficiency and flexibility may also be achieved with system deployment configurations and resolving invalid selections in the configuration process.